home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 18 Board & Card Games / ANIMAL.BIN / ANIMAL GAME (.txt) next >
Encoding:
Commodore BASIC  |  2019-04-13  |  3.5 KB  |  127 lines

  1. 100    REM     GUESS THE ANIMAL
  2. 110    REM     MODIFIED FOR MICROSOFT BASIC BY
  3. 120    REM     SELDEN MCCABE, SAN DIEGO, CALIF
  4. 130    REM     LAST UPDATED 07/02/83
  5. 500 REM *** THEN DOWNLOADED 2/14/87 FROM ARTIFICIAL INTELLIGENCE
  6. 501 REM *** FORUM (AIE) DL15 BY JIM FLEMING, FALLS CHURCH, VA
  7. 502 REM *** THEN MODIFIED FOR C64 BASIC V2 AND UPLOADED TO CBMPRG
  8. 503 REM *** HAPPY VALENTINE'S DAY!
  9. 1000    PRINT
  10. 1001    PRINT
  11. 1002    PRINT "*******************************"
  12. 1003    PRINT "*                             *"
  13. 1004    PRINT "*    GUESS THE ANIMAL         *"
  14. 1005    PRINT "*                             *"
  15. 1006    PRINT "*   A PROGRAM THAT LEARNS     *"
  16. 1007    PRINT "*                             *"
  17. 1008    PRINT "*******************************"
  18. 1009    PRINT
  19. 1010    PRINT "THINK OF AN ANIMAL, AND I WILL TRY TO GUESS IT."
  20. 1011 DIM A$(400)
  21. 1012 OPEN2,8,2,"0:ANIMALDATA,S,R"
  22. 1013 INPUT#2,N
  23. 1014    FOR I=1 TO N
  24. 1015 INPUT#2,A$(I)
  25. 1016    NEXT I
  26. 1017 CLOSE 2
  27. 1018    A$(0)=STR$(N)
  28. 1019    GOTO 1300
  29. 1290 REM *** YES, NO, LIST, OR SAVE..DON'T FORGET TO SAVE BEFORE A NO,
  30. 1291 REM *** IF YOU WANT ANIMAL TO RETAIN WHAT YOU'VE TAUGHT IT THIS SESSION.
  31. 1300 PRINT "ARE YOU THINKING OF AN ANIMAL(Y,N,L,S)?"
  32. 1301    INPUT L$
  33. 1302    GOSUB 3100
  34. 1303    Z9$=L$
  35. 1304    IF Z9$="Y" THEN GOTO 1350
  36. 1305    IF Z9$="N" THEN GOTO 4000
  37. 1306    IF Z9$="L" THEN GOTO 1320
  38. 1307    IF Z9$<>"S" THEN GOTO 1330
  39. 1308 OPEN2,8,2,"@0:ANIMALDATA,S,W"
  40. 1309 PRINT#2,VAL(A$(0))
  41. 1310    FOR I=1 TO VAL(A$(0))
  42. 1311 PRINT#2,A$(I)
  43. 1312    NEXT I
  44. 1313 CLOSE2
  45. 1314    GOTO 1300
  46. 1320    PRINT "ANIMALS I ALREADY KNOW ARE:"
  47. 1321 FOR I=1 TO VAL(A$(0))
  48. 1322    IF LEFT$(A$(I),2)="\A" THEN PRINT MID$(A$(I),3)
  49. 1323    NEXT I
  50. 1324    PRINT
  51. 1325    GOTO 1300
  52. 1330    PRINT "PLEASE TYPE YES, NO, SAVE, OR LIST."
  53. 1331    GOTO 1300
  54. 1340    REM ***** BEGIN GUESSING *****
  55. 1350 K=1
  56. 1360    GOSUB 3000
  57. 1400    K=K1
  58. 1410    IF (LEN(A$(K))=0) THEN GOTO 3000
  59. 1420    IF (LEFT$(A$(K),2)="\Q") THEN GOTO 1360
  60. 1430    PRINT "IS IT A ";MID$(A$(K),3);
  61. 1440    INPUT L$
  62. 1450    GOSUB 3100
  63. 1460    Z7$=L$
  64. 1470    IF Z7$="Y" THEN PRINT "WHY NOT TRY ANOTHER ANIMAL?"
  65. 1480    IF Z7$="Y" THEN GOTO 1300
  66. 1500 PRINT "I GIVE UP!  WHAT ANIMAL WERE YOU THINKING OF "
  67. 2000 INPUT Z9$
  68. 2010 IF LEN(Z9$)<2 THEN GOTO 1500
  69. 2050 PRINT "PLEASE TYPE IN A QUESTION THAT WOULD DISTINGUISH A ";
  70. 2059 PRINT Z9$;" FROM A ";MID$(A$(K),3)
  71. 2070 INPUT Z8$
  72. 2100    PRINT "FOR A ";Z9$;" THE ANSWER WOULD BE";
  73. 2110    INPUT L$
  74. 2115    GOSUB 3100
  75. 2116    Z7$=L$
  76. 2130 IF Z7$="Y" THEN Z6$="N":GOTO2140
  77. 2135 IF Z7$<>"N" THEN 2100
  78. 2140    IF Z7$="N" THEN Z6$="Y"
  79. 2200    Z1=VAL(A$(0))+1
  80. 2210    A$(0)=STR$(Z1+1)
  81. 2220    A$(Z1)=A$(K)
  82. 2230    A$(Z1+1)="\A"+Z9$
  83. 2240    A$(K)="\Q"+Z8$+"\"+Z7$+STR$(Z1+1)+"\"+Z6$+STR$(Z1)+"\"
  84. 2300    GOTO 1300
  85. 2890    REM
  86. 2900    REM *** SUBROUTINE TO ASK QUESTION AND DECIDE WHAT QUESTION TO
  87. 2910    REM *** ASK NEXT OR WHAT ANIMAL IT IS
  88. 3000    REM K = CURRENT QUESTION, K1 = NEXT QUESTION
  89. 3001 S1=LEN(A$(K))
  90. 3002 FORI1=3TOS1:IF(MID$(A$(K),I1,1)="\")THEN3010
  91. 3003 NEXTI1
  92. 3010    PRINT MID$(A$(K),3,(I1-3));
  93. 3020    INPUT L$
  94. 3030    GOSUB 3100
  95. 3035    Z9$=L$
  96. 3040    IF Z9$<>"Y" THEN Z9$="N"
  97. 3050 FORZ1=3TOS1:IF(MID$(A$(K),Z1,2)="\"+Z9$)THEN3058
  98. 3052 NEXTZ1
  99. 3058 Z1=Z1+2
  100. 3060 FORZ2=Z1TOS1:IF(MID$(A$(K),Z2,1)="\")THEN3068
  101. 3062 NEXTZ2
  102. 3068 Z2=Z2-1
  103. 3070    K1=VAL(MID$(A$(K),Z1,Z2))
  104. 3080    RETURN
  105. 3100    REM     SUBROUTINE TO TURN LOWER CASE INTO UPPER CASE
  106. 3110    A0=ASC(L$)
  107. 3120    IF A0>96 AND A0<123 THEN A0=A0-32
  108. 3130    L$=CHR$(A0)
  109. 3140    RETURN
  110. 3190 REM *** ONE-TIME UPPER-TO-LOWER CASE RTN,CALLED BY GOSUB APPENDED TO 1015
  111. 3191 REM *** NEEDED ONLY IF SEQ DATA FILE OBTAINED VIA NON-C64 MEANS
  112. 3192 REM *** IF U RESPOND "LIST" TO THE "ARE U THINKING OF AN ANIMAL" QUESTION
  113. 3193 REM *** AND GET NO ANIMALS LISTED, THEN U NEED TO EXECUTE THIS RTN ONCE,
  114. 3194 REM *** BY APPENDING A GOSUB3200 TO 1015, AND EXECUTE PROGRAM ONE-TIME.
  115. 3195 REM *** ALTERNATELY, USE ANY OF SEVERAL LOCASE CONVERSION UTILITIES AROUND
  116. 3200 S1=LEN(A$(I))
  117. 3205 S2$=""
  118. 3210 FORI1=1TOS1
  119. 3220 A0=ASC(MID$(A$(I),I1,1))
  120. 3230 IFA0>192ANDA0<223THENA0=A0-128
  121. 3240 S2$=S2$+CHR$(A0)
  122. 3250 NEXTI1
  123. 3255 A$(I)=S2$
  124. 3260 RETURN
  125. 4000    PRINT
  126. 4010    PRINT "OK.  SEE YOU LATER.  HOPE YOU HAD FUN PLAYING."
  127.